home *** CD-ROM | disk | FTP | other *** search
/ Trusted Irix /B 4.0.4 / Trusted-Irix B-4.0.1.iso / dist / eoe1.idb / usr / include / sys / sv1hw.h.z / sv1hw.h
C/C++ Source or Header  |  1992-04-03  |  15KB  |  609 lines

  1. /*
  2.  *    $Revision: 1.3 $
  3.  */
  4.  
  5. #ifndef __SV1_HW_H_
  6. #define __SV1_HW_H_
  7.  
  8. #define    LOW_7(X)    (X & 0x7f)
  9. #define    LOW_8(X)    (X & 0xff)
  10. #define    LOW_10(X)    (X & 0x3ff)
  11.  
  12.  
  13. #define    GIO_BUS_DELAY    15
  14.  
  15. #define    SEND_PIXKEY_RAM(I,X)    {*((long *)(PIX_VIRT_ADDR)+I) = X;}
  16.  
  17. #define DENC_CLUT_LEN    256
  18. #define SEND_DENC_CTRL(D,I,X)    {D->dencAdrCtl = I; D->dencDatCtl = X;}
  19. #define SEND_DENC_CTRL_ARRAY(D,I,X) \
  20.         {int i; \
  21.         D->dencAdrCtl = I; \
  22.         for (i = 0; X[i] != 0xffffffff; i++) { \
  23.             D->dencDatCtl = X[i]; \
  24.         } }
  25.  
  26. #ifndef KTRACE
  27. #define TRACE0(T,S)
  28. #define TRACE1(T,S,A)
  29. #define TRACE2(T,S,A,B)
  30. #define TRACE3(T,S,A,B,C)
  31. #endif /* KTRACE */
  32.  
  33. /*
  34.  * This is a software flag to indicate whether or not we
  35.  * want to disable the hardware.   It does not make any
  36.  * state change in the hardware.
  37.  */
  38. #define    HARDWARE_DISABLE(X)    {hardware_state = X;}
  39.  
  40. /*
  41.  * Pixkey count.
  42.  */
  43. #define    PIXKEY_COUNT        0x100
  44.  
  45. /*
  46.  * Status return values.
  47.  */
  48. #define    STATUS_OK        0x00
  49. #define    STATUS_ERR        -1
  50. #define STATUS_I2C_TIMEOUT    0x01
  51.  
  52. /*
  53.  * Base addresses of the various sections of the 64k SV1
  54.  * address space.
  55.  */
  56.  
  57. #define    SVB_PHYS_ADDR    0x1f3e0000
  58. #define    DENC_PHYS_ADDR    (SVB_PHYS_ADDR + 0x800)
  59. #define    PIX_PHYS_ADDR    (SVB_PHYS_ADDR + 0xc00)
  60. #define    CLI_PHYS_ADDR    (SVB_PHYS_ADDR + 0x1000)
  61. #define    SRTV_PHYS_ADDR    (SVB_PHYS_ADDR + 0x2000)
  62. #define    SVB_MAX_ADDR    0x10000
  63.  
  64. #define    SVB_VIRT_ADDR    (PHYS_TO_K1(SVB_PHYS_ADDR))
  65. #define    DENC_VIRT_ADDR    (PHYS_TO_K1(DENC_PHYS_ADDR))
  66. #define    PIX_VIRT_ADDR    (PHYS_TO_K1(PIX_PHYS_ADDR))
  67. #define    CLI_VIRT_ADDR    (PHYS_TO_K1(CLI_PHYS_ADDR))
  68. #define    SRTV_VIRT_ADDR    (PHYS_TO_K1(SRTV_PHYS_ADDR))
  69.  
  70. #define CHECK_SV(S)    if (S != (SVR_Regs *)SVB_VIRT_ADDR) printf ("bad sv 0x%x\n", S);
  71. #define CHECK_DENC(D)    if (D != (DENC_Regs *)DENC_VIRT_ADDR) printf ("bad denc 0x%x\n", D);
  72.  
  73. /*
  74.  * SVB CLUT offsets
  75.  */
  76. #define    SVBLUT00    0x00
  77. #define    SVBLUT01    0x01
  78. #define    SVBLUT02    0x02
  79. #define    SVBLUT03    0x03
  80.  
  81. #define    SVBLUT_INC    0x04
  82.  
  83. /*
  84.  * LUT data types
  85.  */
  86. #define    MONO_LUT    0x00
  87. #define    RGB332V1_LUT    0x01
  88. #define    RGB332GLRGB_LUT    0x02
  89.  
  90. /*
  91.  * BT479 definitions
  92.  */
  93. #define    BTPAL00        0x00
  94. #define    BTPAL01        0x10
  95. #define    BTPAL02        0x20
  96. #define    BTPAL03        0x30
  97.  
  98. /*
  99.  * Pointer Data for registers (serial i/o is off)
  100.  */
  101. #define    SV_I2C_OWNADDR_REG    0x00
  102. #define    SV_I2C_CLK_REG        0x20
  103.  
  104. /*
  105.  * Pointer Data for registers (serial i/o is on)
  106.  */
  107. #define    SV_I2C_SLV_ADDR_REG    0x40    /* set address */
  108. #define    SV_I2C_SUB_ADDR_REG    0x45    /* set subaddress */
  109. #define    SV_I2C_STOP        0xc3    /* set STOP */
  110.  
  111. /*
  112.  * 8584 I2C Controller self address.
  113.  */
  114. #define    SV_I2C_8584_ADDR    0x55
  115.  
  116. /*
  117.  * Init Data.
  118.  */
  119. #define    SV_I2C_CLK_8MHZ        0x18
  120.  
  121. /*
  122.  * Status Masks.
  123.  */
  124. #define    SV_I2C_SERIAL_BUSY    0x80
  125.  
  126. /*
  127.  * Delay and timeout for I2C serial transfers.    We wait
  128.  * SV_I2C_TIMEOUT_DELAY reps on each timeout cycle, and for
  129.  * SV_I2C_TIMEOUT timeouts in total.
  130.  */
  131. #define    SV_I2C_TIMEOUT        0x1000
  132. #define    SV_I2C_TIMEOUT_DELAY    0x08
  133. #define    SV_I2C_TIMEOUT_REPEAT    0x10    /* how often clients of I2C
  134.                        should attempt transfer. */
  135.  
  136. /*
  137.  * Broadcast standards.
  138.  */
  139. #define NTSC                    0
  140. #define PAL                     1
  141.  
  142. /*
  143.  * Video rate.
  144.  */
  145. #define RATE_60HZ               0
  146. #define RATE_50HZ               1
  147.  
  148. /*
  149.  * FUNC_CTL_REG
  150.  */
  151. #define    SV_COLOR_SET        0x80
  152. #define    SV_MONO_SET        0x7F
  153.  
  154. #define    SV_NTSC_SET        0xEF
  155. #define    SV_PAL_SET        0x10
  156.  
  157. #define    SV_BYPASS_VLUT_SET    0xBF
  158. #define    SV_USE_VLUT_SET        0x40
  159.  
  160. #define    SV_FRAMEGRAB_SET    0x20
  161. #define    SV_FRAMEGRAB_OFF    0xDF
  162.  
  163. #define    SV_FIELD_DROP_SET    0xF7
  164. #define    SV_FIELD_DROP_OFF    0x08
  165.  
  166. #define    SV_DITHER_SET        0xFB
  167. #define    SV_DITHER_OFF        0x04
  168.  
  169. #define    SV_FILTER_SET        0xFD
  170. #define    SV_FILTER_OFF        0x02
  171.  
  172. #define    SV_SLAVEOI_SET        0x01
  173. #define    SV_SLAVEOI_OFF        0xFE
  174.  
  175. #define SVB_24YUV_DMA_SETUP     0x08    /* dma YUV fifo1 -> GIO */
  176. #define SVB_24YUV_DMA_SETUP1    0xcc    /* dma YUV fifo1 -> GIO */
  177. #define SVB_24YUV_DMA_SETUP2    0xc8    /* dma YUV fifo1 -> GIO */
  178. #define SVB_24YUV4_DMA_SETUP1   0xec    /* dma YUV quarter fifo1 -> GIO */
  179. #define SVB_24YUV4_DMA_SETUP2   0xe8    /* dma YUV quarter fifo1 -> GIO */
  180. #define SVB_INIT_DMA_SETUP      0xC0    /* init val */
  181.  
  182. #define SVB_INIT_CLOCK_SETUP    0x00    /* init val XXX was 0x04 */
  183. #define SVB_24YUV_CLOCK_SETUP2  0x24    /* yuv run val */
  184. #define SVB_24YUV_CLOCK_SETUP1  0xA4    /* yuv init val */
  185.  
  186. #define SVB_24YUV_BUS_SETUP     0x6A    /* fifo1 -> GIO */
  187. #define SVB_INIT_BUS_SETUP      0x7A    /* vid -> screen, screen -> out */
  188. #define SVB_VOUT_BUS_SETUP    0xEA    /* vc1 -> video */
  189.  
  190.  
  191. /*
  192.  * CSC addresses and subaddresses.
  193.  */
  194. #define    CSC_ADDR        0xE0
  195. #define    CSC_CONTROL_REG        0x00
  196. #define    CSC_LUT_REG        0x01
  197.  
  198. #define    CSC_WRITE_LUTS        0xBF
  199. #define    CSC_READ_LUTS        0x40
  200.  
  201. #define    CSC_MONO_VLUT_LD    0x34
  202. #define    CSC_MONO_VLUT_RUN    0x74
  203.  
  204. #define    CSC_COLOR8_VLUT_LD    0x38
  205. #define    CSC_COLOR8_VLUT_RUN    0x78
  206.  
  207. #define    CSC_COLOR9_VLUT_LD    0x39
  208. #define    CSC_COLOR9_VLUT_RUN    0x79
  209.  
  210. #define    CSCA_RLUT_REG        0x01
  211. #define    CSCA_GLUT_REG        0x02
  212. #define    CSCA_BLUT_REG        0x03
  213. #define CSCA_LUTS_REG        0x04
  214.  
  215. /*
  216.  * DMSD
  217.  */
  218. #define    DMSD_ADDR        0x8A
  219. #define    DMSD_PAGE1        0x00
  220. #define    DMSD_PAGE2        0x14
  221.  
  222. /*
  223.  * DMSD subaddresses.
  224.  */
  225. #define    DMSD_REG_IDEL        0x00
  226. #define    DMSD_REG_HSYB50        0x01
  227. #define    DMSD_REG_HSYE50        0x02
  228. #define    DMSD_REG_HCLB50        0x03
  229. #define    DMSD_REG_HCLE50        0x04
  230. #define    DMSD_REG_HSP50        0x05
  231. #define    DMSD_REG_LUMA        0x06
  232. #define    DMSD_REG_HUE        0x07
  233. #define    DMSD_REG_CKQAM        0x08
  234. #define    DMSD_REG_CKSECAM    0x09
  235. #define    DMSD_REG_SENPAL        0x0A
  236. #define    DMSD_REG_SENSECAM    0x0B
  237. #define    DMSD_REG_GC0        0x0C
  238. #define    DMSD_REG_STDMODE    0x0D
  239. #define    DMSD_REG_IOCLK        0x0E
  240. #define    DMSD_REG_CTRL3        0x0F
  241. #define    DMSD_REG_CTRL4        0x10
  242. #define    DMSD_REG_CHCV        0x11
  243. #define    DMSD_REG_HSYB60        0x14
  244. #define    DMSD_REG_HSYE60        0x15
  245. #define    DMSD_REG_HCLB60        0x16
  246. #define    DMSD_REG_HCLE60        0x17
  247. #define    DMSD_REG_HSP60        0x18
  248. #define    DMSD_CHCV_NTSC          0x2C
  249. #define    DMSD_CHCV_PAL           0x59
  250.  
  251.     /* theDMSD.dmsdRegLUMA */
  252. #define DMSD_PREF_SEL_ON        0x40
  253. #define DMSD_PREF_SEL_OFF       0xFFFFFFBF
  254. #define DMSD_CTBS_SEL_ON        0x80
  255. #define DMSD_CTBS_SEL_OFF       0xFFFFFF7F
  256.  
  257. #define DMSD_APER_MASK          0xFFFFFFFC
  258. #define DMSD_APER_BITS          0x03
  259. #define DMSD_CORI_MASK          0xFFFFFFF3
  260. #define DMSD_CORI_BITS          0x0C
  261. #define DMSD_BPSS_MASK          0xFFFFFFCF
  262. #define DMSD_BPSS_BITS          0x30
  263.  
  264.     /* theDMSD.dmsdRegSTDmode */
  265. #define DMSD_TV_MODE_SEL        0xFFFFFF7F
  266. #define DMSD_VTR_MODE_SEL       0x80
  267.  
  268.  
  269.  
  270.     /* theDMSD.dmsdRegIOclk */
  271. #define DMSD_INPUT_SEL_MASK     0xFFFFFFFC
  272. #define DMSD_INPUT_SEL_0        0x00
  273. #define DMSD_INPUT_SEL_1        0x01
  274. #define DMSD_INPUT_SEL_2        0x02
  275. #define DMSD_COMP_MODE_SEL      0xFFFFFFFB
  276. #define DMSD_SVID_MODE_SEL      0x04
  277. #define DMSD_HPLL_SEL_ON        0xFFFFFF7F
  278. #define DMSD_HPLL_SEL_OFF       0x80
  279.  
  280. /*
  281.  *    DMSD.dmsdRegGC0.
  282.  */
  283. #define DMSD_COL_SEL_ON         0x80
  284. #define DMSD_COL_SEL_OFF        0xFFFFFF7F
  285.  
  286. #define    DMSD_LFIS_MASK        0xFFFFFF9F
  287. #define    DMSD_LFIS_BITS        0x60
  288.  
  289. /*
  290.  *    DMSD.dmsdRegCTRL3.
  291.  */
  292. #define    DMSD_YDEL_MASK        0xFFFFFFF8
  293. #define    DMSD_YDEL_BITS        0x07
  294.  
  295. #define DMSD_OFTS_SEL411_ON     0xFFFFFFF7
  296. #define DMSD_OFTS_SEL422_ON     0x08
  297.  
  298. #define DMSD_AUFD_SEL_ON        0x80
  299. #define DMSD_AUFD_SEL_OFF       0xFFFFFF7F
  300.  
  301. /*
  302.  *    DMSD.dmsdRegCTRL4.
  303.  */
  304. #define    DMSD_VNOI_MASK        0xFFFFFFFC
  305. #define    DMSD_VNOI_BITS        0x03
  306.  
  307. #define DMSD_HRFS_SEL_PHIL      0xFFFFFFFB
  308. #define DMSD_HRFS_SEL_CCIR      0x04
  309.  
  310. /*
  311.  * H functions.
  312.  */
  313. enum H_function    {NO_H_FUNCTION = 0, HSYb, HSYe, HCLb, HCLe, HSps,
  314.     HUE, CKQAM, CHCV, IDEL, APERTURE_FACT, CORING,
  315.     APERTURE_BAND, AGC_LOOP, YDEL, VNOI,
  316.     HPLL_FUNC, PREF_FUNC, CTBS_FUNC, COMP_FUNC, COLS_FUNC,
  317.     OFTS_FUNC, AUFS_FUNC, HRFS_FUNC};
  318. enum color_flags    {COLOR_NONE = 0,COLOR_0, COLOR_8, COLOR_9};
  319.  
  320.  
  321. /*
  322.  * DMSD.dmsdRegCTRL3
  323.  */
  324.  
  325. #define    DMSD_FSEL_SEL50_ON    0xFFFFFFBF
  326. #define    DMSD_FSEL_SEL60_ON    0x40
  327.  
  328. /*
  329.  * DENC internal register indices.
  330.  */
  331. #define    DENC_REG_IN00        0x00
  332. #define    DENC_REG_IN01        0x01
  333. #define    DENC_REG_IN02        0x02
  334. #define    DENC_REG_IN03        0x03
  335. #define    DENC_REG_SYNC00        0x04
  336. #define    DENC_REG_SYNC01        0x05
  337. #define    DENC_REG_SYNC02        0x06
  338. #define    DENC_REG_SYNC03        0x07
  339. #define    DENC_REG_OUT00        0x08
  340. #define    DENC_REG_OUT01        0x09
  341. #define    DENC_REG_OUT02        0x0A
  342. #define    DENC_REG_OUT03        0x0B
  343. #define    DENC_REG_ENCODE00    0x0C
  344. #define    DENC_REG_ENCODE01    0x0D
  345. #define    DENC_REG_ENCODE02    0x0E
  346.  
  347. #define    VIDEO_MAP_SIZE        256
  348.  
  349.     /* MOD 0-1 - (0,1) */
  350. #define DENC_MOD_MASK           0xFC
  351. #define DENC_GENLOCK_ON         0x00
  352. #define DENC_STANDALONE_ON      0x01
  353. #define DENC_MASTER_ON          0x02
  354. #define DENC_TEST_ON            0x03
  355.  
  356.  
  357.     /* VTBY - (7) */
  358. #define DENC_VTBY_MASK          0x7F
  359. #define DENC_VTBY_ON            0x00
  360. #define DENC_VTBY_OFF           0x80
  361.  
  362.     /* SRC - (5) */
  363. #define DENC_SRC_MASK           0xDF
  364. #define DENC_SRC_EXT_ON         0x00
  365. #define DENC_SRC_DTV2_ON        0x20
  366.  
  367.  
  368.  
  369. /*
  370.  * Initial values.
  371.  */
  372. #define INIT_VS0_IDEL           0x51
  373. #define INIT_VS1_HSYb50         0x30
  374. #define INIT_VS2_HSYe50         0x00
  375. #define INIT_VS3_HCLb50         0xE8
  376. #define INIT_VS4_HCLe50         0xB6
  377. #define INIT_VS5_HSps50         0xF4
  378.  
  379. #define INIT_VS6_HUE            0x00
  380. #define INIT_VS7_CKQAM          0xF8
  381.  
  382. #define INIT_VS8_CHCV           0x2C
  383.  
  384. #define INIT_VS1_HSYb60         0x31
  385. #define INIT_VS2_HSYe60         0x0A
  386. #define INIT_VS3_HCLb60         0xF4
  387. #define INIT_VS4_HCLe60         0xCE
  388. #define INIT_VS5_HSps60         0x0A
  389.  
  390. #define INIT_VS9_APER           0x01    /* 0x06 LUMA    */
  391. #define INIT_VS10_CORI          0x00    /* 0x06 LUMA    */
  392. #define INIT_VS11_BPSS          0x00    /* 0x06 LUMA    */
  393.  
  394. #define INIT_VS12_LFIS          0x00    /* 0x0C GC0     */
  395. #define INIT_VS13_YDEL          0x01    /* 0x0F CTRL #3 */
  396. #define INIT_VS14_VNOI          0x00    /* 0x10 CTRL #4 */
  397.  
  398. /*
  399.  * Structures to describe the hardware:
  400.  *
  401.  * DMSD Register struct.
  402.  */
  403. typedef struct dmsd_regs {
  404.     long    dmsdRegIDEL;        /* 0x00 - 0x50 */
  405.     long    dmsdRegHSYb50;        /* 0x01 - 0x30 */
  406.     long    dmsdRegHSYe50;        /* 0x02 - 0x00 */
  407.     long    dmsdRegHCLb50;        /* 0x03 - 0xE8 */
  408.     long    dmsdRegHCLe50;        /* 0x04 - 0xB6 */
  409.     long    dmsdRegHSP50;        /* 0x05 - 0xF4 */
  410.     long    dmsdRegLUMA;        /* 0x06 - 0x01 */
  411.     long    dmsdRegHUE;        /* 0x07 - 0x00 */
  412.     long    dmsdRegCKqam;        /* 0x08 - 0xF8 */
  413.     long    dmsdRegCKsecam;        /* 0x09 - 0xF8 */
  414.     long    dmsdRegSENpal;        /* 0x0A - 0x90 */
  415.     long    dmsdRegSENsecam;    /* 0x0B - 0x90 */
  416.     long    dmsdRegGC0;        /* 0x0C - 0x00 */
  417.     long    dmsdRegSTDmode;        /* 0x0D - 0x00 */
  418.     long    dmsdRegIOclk;        /* 0x0E - 0x79 */
  419.     long    dmsdRegCTRL3;        /* 0x0F - 0x91 (0xD1) */
  420.     long    dmsdRegCTRL4;        /* 0x10 - 0x00 */
  421.     long    dmsdRegCHCV;        /* 0x11 - 0x2C */
  422.  
  423.     long    dmsdTerminate1;        /* XXXX - 0xFFFF */
  424.  
  425.     long    dmsdRegHSYb60;        /* 0x14 - 0x34 */
  426.     long    dmsdRegHSYe60;        /* 0x15 - 0x0A */
  427.     long    dmsdRegHCLb60;        /* 0x16 - 0xF4 */
  428.     long    dmsdRegHCLe60;        /* 0x17 - 0xCE */
  429.     long    dmsdRegHSP60;        /* 0x18 - 0xF4 (0x0A) */
  430.  
  431.     long    dmsdTerminate2;        /* XXXX - 0xFFFF */
  432.  
  433.     long    videoRate;        /* XXXX */
  434.     long    videoStandard;        /* XXXX */
  435. } DMSD_Regs;
  436.  
  437. typedef struct denc_struct {
  438.     long    dencRegIn00;            /* 0x00 -      0xA0  -  0xA1   */
  439.     long    dencRegIn01;            /* 0x01 -      0x00  -  0x00   */
  440.     long    dencRegIn02;            /* 0x02 -      0x00  -  0x00   */
  441.     long    dencRegIn03;            /* 0x03 -      0x00  -  0x00   */
  442.     long    dencRegSync00;          /* 0x04 -      0xF0  -  0xF0   */
  443.     long    dencRegSync01;          /* 0x05 -      0x00  -  0x00   */
  444.     long    dencRegSync02;          /* 0x06 -      0x52  -  0x52   */
  445.     long    dencRegSync03;          /* 0x07 -      0x00  -  0x00   */
  446.     long    dencRegOut00;           /* 0x08 -      0x60  -  0x40   */
  447.     long    dencRegOut01;           /* 0x09 -      0x00  -  0x00   */
  448.     long    dencRegOut02;           /* 0x0A -      0x00  -  0x00   */
  449.     long    dencRegOut03;           /* 0x0B -      0x00  -  0x00   */
  450.     long    dencRegEncode00;        /* 0x0C -      0x00  -  0x00   */
  451.     long    dencRegEncode01;        /* 0x0D -      0x00  -  0x00   */
  452.     long    dencRegEncode02;        /* 0x0E -      0x0C  -  0x0C   */
  453.     long    dencTerm;
  454. } DencStruct;
  455.  
  456. /*
  457.  * Local Data bus, Board Rev, I2C, DENC, Pixkey Registers.
  458.  */
  459. typedef struct denc_regs {
  460.     long    BoardRevId;        /* 0x800 */
  461.     long    I2cCsCtl;        /* 0x804 */
  462.     long    I2CCsData;        /* 0x808 */
  463.     long    dencUnused1;        /* 0x80c */
  464.     long    dencAdrClut;        /* 0x810 */
  465.     long    dencDatClut;        /* 0x814 */
  466.     long    dencAdrCtl;        /* 0x818 */
  467.     long    dencDatCtl;        /* 0x81c */
  468. } DENC_Regs;
  469.  
  470. /*
  471.  * SVR Registers
  472.  */
  473. typedef struct SVR_regs {
  474.     long    svrRevId;        /* 0x00 */
  475.     long    svrConfCtl;        /* 0x04 */
  476.     long    svrDmaCtl;        /* 0x08 */
  477.     long    svrDmaData;        /* 0x0c */
  478.     long    svrInXStart;        /* 0x10 */
  479.     long    svrInXEnd;        /* 0x14 */
  480.     long    svrInYStart;        /* 0x18 */
  481.     long    svrInYEnd;        /* 0x1c */
  482.     long    svrDecimation;        /* 0x20 */
  483.     long    svrOutXStart;        /* 0x24 */
  484.     long    svrOutYStart;        /* 0x28 */
  485.     long    svrBusCtl;        /* 0x2c */
  486.     long    svrFuncCtl;        /* 0x30 */
  487.     long    svrClockMode;        /* 0x34 */
  488. } SVR_Regs;
  489. typedef struct videochip {
  490.     SVR_Regs    sv_regs;
  491. } VideoChip;
  492.  
  493. extern int    gio_bus_delay;
  494.  
  495. #define REGS_FROM_GFX(G,S,D) \
  496.     { \
  497.         struct video_board        *gfxb; \
  498.         struct video_info       *info; \
  499.         struct VideoDevice      *board; \
  500.  \
  501.         if (!(gfxb = G->vx_board)) { \
  502.             printf ("gfxb 0x%x\n", gfxb); \
  503.             return (-1); \
  504.         } \
  505.         if (!(info = (struct video_info *)(gfxb->vb_info))) { \
  506.             printf ("info 0x%x\n", info); \
  507.             return (-1); \
  508.         } \
  509.         if (!(board = info->video_board)) { \
  510.             printf ("board 0x%x\n", board); \
  511.             return (-1); \
  512.         } \
  513.         if (board->info != info) { \
  514.             printf ("board->info 0x%x info 0x%x\n", \
  515.                 board->info, info); \
  516.             return (-1); \
  517.         } \
  518.         S = board->sv_regs; \
  519.         D = board->denc; \
  520.     }
  521.  
  522. struct   aCSC {
  523.     long    theModeReg;
  524. };
  525.  
  526. extern DencStruct    aDENC;
  527. extern unsigned char    clutDENCdataRed[];
  528. extern unsigned char    clutDENCdataGreen[];
  529. extern unsigned char    clutDENCdataBlue[];
  530. extern long         cscLUTData1[];
  531. extern long        csclut_rg[];
  532. extern long        csclut_b[];
  533.  
  534.  
  535. struct param_values {
  536.     int     current;
  537.     int     lowest;
  538.     int     highest;
  539.     int    call_param;
  540.     int    (*call_func)();
  541. };
  542. extern struct param_values    ParamValues[];
  543. struct low_param_values_calls {
  544.     int     (*sv_call_func)();
  545.     int     (*denc_call_func)();
  546. };
  547. extern struct low_param_values_calls    LowParamValuesCalls[];
  548.  
  549. struct init_general {
  550.     int    (*sv_call_func)();
  551.     int    sv_value;
  552.     int    (*denc_call_func)();
  553.     int    denc_flag;
  554.     int    denc_value;
  555. };
  556. extern struct init_general    Init_General[];
  557.  
  558. extern int sv1_edtinit_called;
  559.  
  560. struct init_values {
  561.     enum boolean        InitHPLL;
  562.     enum boolean        InitPFLT;
  563.     enum boolean        InitCTBS;
  564.     enum boolean        InitCOL;
  565.     enum boolean        InitOFTS;
  566.     enum boolean        InitAUFD;
  567.     enum boolean        InitHRFS;
  568.     enum bypass_value        InitVLUT;
  569.     enum framegrab_value        InitGRAB;
  570.     enum fielddrop_value        InitTEAR;
  571.     enum dither_value        InitDITH;
  572.     enum filter_value        InitFILT;
  573.     enum slave_value        InitSLAVEOI;
  574.     int        InitISEL;
  575.     enum input_type        InitITYP;
  576.     enum video_mode        InitIVSYS;
  577.     enum broadcast_std        InitIVSTD;
  578.     enum video_rate        Init5060;
  579.     enum color_value        InitCOMO;
  580.     long        InitIDEL;
  581.     int        InitHSYb;
  582.     int        InitHSYe;
  583.     int        InitHCLb;
  584.     int        InitHCLe;
  585.     int        InitHSps;
  586.     long        InitHUE;
  587.     long        InitCK;
  588.     long        InitCHCV;
  589.     int        InitAPER;
  590.     int        InitCORI;
  591.     int        InitBPSS;
  592.     int        InitLFIS;
  593.     int        InitYDEL;
  594.     int        InitVNOI;
  595.     enum boolean        InitCLUT;
  596.     enum boolean    InitSA;
  597. };
  598.  
  599. struct video_coords {
  600.     int     x_start;
  601.     int     x_end;
  602.     int     y_start;
  603.     int     y_end;
  604.     int    decimation;
  605.     int    Source;
  606. };
  607.  
  608. #endif /* __SV1_HW_H_ */
  609.